文档

管理审计日志

更新时间:

StarRocks将所有审计日志存储在本地文件fe/log/fe.audit.log中,并且这些日志无法通过系统内部数据库访问。启用审计日志功能将安装AuditLoader插件,该插件能够从本地文件中读取日志,并通过HTTP PUT方法将其导入StarRocks数据库,方便您能够查看并分析数据库中发生的所有操作。

前提条件

已创建Serverless StarRocks实例,详情请参见创建实例

开启审计日志

  1. 进入EMR Serverless StarRocks实例详情页面。
    1. 登录EMR Serverless控制台
    2. 在顶部菜单栏处,根据实际情况选择地域。
    3. 单击目标实例的实例名称。
  2. 单击右上角的开启审计日志

  3. 开启审计日志对话框中,单击确定

    即可一键安装AuditLoader插件。同时,会在您的StarRocks实例中自动创建数据库_starrocks_audit_db_和数据表starrocks_audit_tbl,后续所有的审计日志都会存储于该表中。image.png

    说明

    目前,审计日志使用了动态分区的方式,默认存储前3天和后30天的审计数据。根据您的业务需求,您可以自行调整审计数据的存储时间,即修改dynamic_partition.startdynamic_partition.end的参数值。

    数据库_starrocks_audit_db_和数据表starrocks_audit_tbl的创建语句如下所示。

    CREATE DATABASE _starrocks_audit_db_;
    CREATE TABLE _starrocks_audit_db_.starrocks_audit_tbl(
      `queryId`        VARCHAR(48)            COMMENT "Unique query ID",
      `timestamp`      DATETIME     NOT NULL  COMMENT "Query start time",
      `queryType`      VARCHAR(12)            COMMENT "Query type (query, slow_query)",
      `clientIp`       VARCHAR(32)            COMMENT "Client IP address",
      `user`           VARCHAR(64)            COMMENT "User who initiates the query",
      `authorizedUser` VARCHAR(64)            COMMENT "user_identity",
      `resourceGroup`  VARCHAR(64)            COMMENT "Resource group name",
      `catalog`        VARCHAR(32)            COMMENT "Catalog name",
      `db`             VARCHAR(96)            COMMENT "Database that the query scans",
      `state`          VARCHAR(8)             COMMENT "Query state (EOF, ERR, OK)",
      `errorCode`      VARCHAR(96)            COMMENT "Error code",
      `queryTime`      BIGINT                 COMMENT "Query latency in milliseconds",
      `scanBytes`      BIGINT                 COMMENT "Size of the scanned data in bytes",
      `scanRows`       BIGINT                 COMMENT "Row count of the scanned data",
      `returnRows`     BIGINT                 COMMENT "Row count of the result",
      `cpuCostNs`      BIGINT                 COMMENT "CPU resources consumption time for query in nanoseconds",
      `memCostBytes`   BIGINT                 COMMENT "Memory cost for query in bytes",
      `stmtId`         INT                    COMMENT "Incremental SQL statement ID",
      `isQuery`        TINYINT                COMMENT "If the SQL is a query (0 and 1)",
      `feIp`           VARCHAR(32)            COMMENT "IP address of FE that executes the SQL",
      `stmt`           STRING                 COMMENT "SQL statement",
      `digest`         VARCHAR(32)            COMMENT "SQL fingerprint",
      `planCpuCosts`   DOUBLE                 COMMENT "CPU resources consumption time for planning in nanoseconds",
      `planMemCosts`   DOUBLE                 COMMENT "Memory cost for planning in bytes"
    ) ENGINE = OLAP
    DUPLICATE KEY (`queryId`, `timestamp`, `queryType`)
    COMMENT "Audit log table"
    PARTITION BY RANGE (`timestamp`) ()
    DISTRIBUTED BY HASH (`queryId`) BUCKETS 3 
    PROPERTIES (
      "dynamic_partition.time_unit" = "DAY",
      "dynamic_partition.start" = "-30",
      "dynamic_partition.end" = "3",
      "dynamic_partition.prefix" = "p",
      "dynamic_partition.buckets" = "3",
      "dynamic_partition.enable" = "true",
      "replication_num" = "3"
    );
  4. (可选)验证安装并查询审计日志。

    1. 连接StarRocks实例,详情请参见通过客户端方式连接StarRocks实例

    2. 在SQL Editor中执行以下语句,检查插件是否安装成功。

      SHOW PLUGINS;

      当返回信息中AuditLoaderStatusINSTALLED时,即代表安装成功。

    3. 执行任意SQL语句以生成审计日志,并等待60秒以允许AuditLoader将审计日志批量导入至StarRocks。

    4. 执行以下命令,查看表中是否有数据,有数据则说明读取操作成功。

      SELECT * FROM _starrocks_audit_db_.starrocks_audit_tbl;

关闭审计日志

说明

由于审计日志需要占用StarRocks实例的存储空间,如果您希望节省存储空间,可以关闭该功能。

  1. 进入EMR Serverless StarRocks实例详情页面。
    1. 登录EMR Serverless控制台
    2. 在顶部菜单栏处,根据实际情况选择地域。
    3. 单击目标实例的实例名称。
  2. 单击右上角的关闭审计日志

  3. 关闭审计日志对话框中,单击确定

    即可一键卸载AuditLoader插件。关闭审计日志后,数据库_starrocks_audit_db_和数据表starrocks_audit_tbl不会被删除,只会停止记录数据访问信息。如有必要,您可以手动删除这些库表以释放空间。

  • 本页导读 (1)
文档反馈